package com.ssy.lingxi.member.merchant.service.mobile;

import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.model.vo.PageVO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.member.merchant.model.vo.lifecycle.request.CommonIdVO;
import com.ssy.lingxi.member.merchant.model.vo.mobile.request.MobileMemberTradeCommentSaveVO;
import com.ssy.lingxi.member.merchant.model.vo.mobile.response.*;

/**
 * App - 会员评价服务类
 * @author yzc
 * @version 2.0.0
 * @date 2021/2/24
 */
public interface IMobileMemberCommentService {

    /**
     * 评价中心 - 待评价 - 分页列表
     * @param loginUser 登录用户信息
     * @param pageVO 接口参数
     * @return 返回结果
     */
    Wrapper<PageData<MobileWaitCommentOrderProductPageVO>> pageWaitOrderComment(UserLoginCacheDTO loginUser, PageVO pageVO);

    /**
     * 评价中心 - 待评价 - 评价商品详情
     * @param loginUser 登录用户信息
     * @param commonIdVO 接口参数
     * @return 返回结果 查询结果
     */
    Wrapper<MobileCommentOrderProductVO> getMemberOrderComment(UserLoginCacheDTO loginUser, CommonIdVO commonIdVO);

    /**
     * 评价中心 - 待评价 - 写评价
     * @param loginUser 登录用户信息
     * @param memberTradeCommentSaveVO 接口参数
     * @return 返回结果
     */
    Wrapper<Void> saveMemberComment(UserLoginCacheDTO loginUser, MobileMemberTradeCommentSaveVO memberTradeCommentSaveVO);

    /**
     * 评价中心 - 已评价 - 分页列表
     * @param loginUser 登录用户信息
     * @param pageVO 接口参数
     * @return 返回结果
     */
    Wrapper<PageData<MobileCompleteCommentPageVO>> pageCompleteOrderComment(UserLoginCacheDTO loginUser, PageVO pageVO);

    /**
     * 评价中心 - 已评价 - 评价商品详情
     * @param loginUser 登录用户信息
     * @param commonIdVO 接口参数
     * @return 返回结果 查询结果
     */
    Wrapper<MobileCommentHistoryVO> getMemberCommentHistory(UserLoginCacheDTO loginUser, CommonIdVO commonIdVO);

    /**
     * 评价中心 - 卖家对我的评价 - 分页列表
     * @param loginUser 登录用户信息
     * @param pageVO 接口参数
     * @return 返回结果
     */
    Wrapper<PageData<MobileReceiveCommentPageVO>> pageReceiveOrderComment(UserLoginCacheDTO loginUser, PageVO pageVO);

}
